package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.common.ResultadoValidacion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.CategoriaArticulo;

public interface IServicioCategoriaArticulo {

    public Collection<CategoriaArticulo> listarCategoriasArticulosActivos() throws ServiceException;

    public CategoriaArticulo conseguirCategoriaArticuloPorId(Integer idCategoriaArticulo) throws ServiceException;

    public Collection<CategoriaArticulo> listarTodasCategoriaArticulo() throws ServiceException;

    public boolean validarCategoriaArticulo(CategoriaArticulo categoriaArticulo) throws ServiceException;

    public ResultadoServicio guardarCategoriaArticulo(CategoriaArticulo categoriaArticulo) throws ServiceException;

    public ResultadoServicio actualizarCategoriaArticulo(CategoriaArticulo categoriaArticulo) throws ServiceException;

    public Collection<CategoriaArticulo> listarCategoriasPadres() throws ServiceException;

    public Collection<CategoriaArticulo> listarCategoriasPorFiltro(CategoriaArticulo categoriaArticulo) throws ServiceException;

    public Collection<CategoriaArticulo> listarCategoriasPorFiltro2(CategoriaArticulo categoriaArticulo) throws ServiceException;

    public CategoriaArticulo obtenerCategoriaArticuloPorNombre(String nombreCategoriaArticulo) throws ServiceException;

    public Collection<CategoriaArticulo> listarCategoriasHijos(CategoriaArticulo categoriaArticulo) throws ServiceException;
    
    public Collection<CategoriaArticulo> listarCategoriasTP() throws ServiceException;
    
    public CategoriaArticulo buscarCategoriaPadre(CategoriaArticulo categoriaArticulo) throws ServiceException;
}
